//计算元素位置
function getAbsolutePosition(element) {
  let left = 0, top = 0;
  while (element != null) {
    left += element.offsetLeft;
    top += element.offsetTop;
    element = element.offsetParent;
  }
  return {left: left, top: top};
}

function insertAfter(newElement, targetElement) {
  /*
  编写逻辑
  1、首先找到给出我们需要插入的元素和用来定位的目标元素
  2、根据目标元素找到两个元素的父元素
  3、判断目标元素是不是父元素内的唯一的元素.
  4、如果是,向父元素执行追加操作,就是appendChild(newElement)
  5、如果不是,向目标元素的之后的紧接着的节点之前执行inserBefore()操作
  */
  let parentElement = targetElement.parentNode;
  //find parent element
  //To determime确定,下决心 whether the last element of the parent element is the same as the target element
  if (parentElement.lastChild == targetElement) {
    parentElement.appendChild(newElement);
  } else {
    parentElement.insertBefore(newElement, targetElement.nextSibling);
  }
}

/**
 * 是否在制定范围
 * @param x
 * @param y
 * @param container
 */
function isInclude(x: number, y: number, container: HTMLElement): boolean {
  let rect = container.getBoundingClientRect();
  if (x > rect.left && y > rect.top && x < rect.left + rect.width && y < rect.top + rect.height)
    return true;
  return false;
}


export {getAbsolutePosition, insertAfter, isInclude}
